1. Technical Field
The present invention relates generally to an improved data processing system and, in particular, to a method and system for using server names in a distributed data processing environment.
2. Description of Related Art
As electronic commerce becomes more prevalent, business relationships between vendors and between a vendor and its customers becomes more valuable. Businesses are more willing to protect those relationships by spending more money on information technology that protects the integrity of their electronic commerce connections. In so doing, businesses protect not only their data and cash flow but also intangibles such as reputations and goodwill. In addition, the complexity of information technology, the pressure of global competition, and the demands of universal access and round-the-clock availability of electronic systems greatly increases the need to minimize disruptions in electronic commerce operations.
A corporation""s information technology infrastructure may fail at various pressure points, such as telecommunication links, software application errors, and computer hardware failures. The complexity of distributed data processing systems places greater reliability demands on all of these factors. One method of increasing the reliability of a system is building redundancy into a system.
When a server fails in a network that contains more than one server, another server can assume the responsibilities of the failed server. In order for a recovery server to assume the role of a failed server, the recovery server needs to be able to respond to requests to the failed server on the network.
Typically, a cluster of servers are configured to respond to a shared cluster name, and each of the servers in the cluster assumes a portion of the duties related to the total demand placed on the cluster by clients. If a server fails, the set of servers in the cluster was already configured to share the processing duties among the other servers in the set, and the failure of a single server merely places a slightly larger processing load on the remaining servers in the cluster.
However, configuring a cluster for fail-over can be rather cumbersome. In one method, in order to set up a cluster of servers that can fail over to each other, all of the existing server names must be assembled and placed into a fail-over group of names. The individual servers are then given other new names.
In addition to fail-over, there are other scenarios for networked servers in which a server is either brought on-line or taken off-line in an effort to improve the reliability of the system. The addition of new hardware, the maintenance of previously installed hardware, and the migration of servers are merely a few examples.
Usually a server is brought off-line to be reconfigured during these various scenarios. Clients that rely on a server taken off-line are inconvenienced while the server is off-line, which creates indirect costs associated with the problem originally being resolved during the reconfiguration.
It would be advantageous to have a method and apparatus for configuring servers so that a server may easily assume the responsibilities of another server in a fail-over situation. It would be particularly advantageous if the same method and apparatus may be used to facilitate the migration and maintenance of servers in such a way that the clients on a network experience a minimum of inconvenience during a reconfiguration of a server.
The present invention provides a method and apparatus for configuring a server in a distributed data processing system. The server receives a request for a function that specifies a first server name and a second server name. The server responds to requests directed to a set of server names that includes the first server name. The function executes on the server specified by the first server name, wherein the function dynamically modifies a membership of the second server name in the set of server names. The server names for the server are added or removed dynamically without halting or restarting the server.